/**

 * <p>Copyright:Copyright(c) 2019</p>
 * <p>Company:Professional</p>
 * <p>Package:com.cesgroup.zw.spring.boot.echarts.model.style</p>
 * <p>File:ForceStyle.java</p>
 * <p>类更新历史信息</p>
 * @todo chanlong(陈龙) 创建于 May 24, 2019 4:50:36 PM
 */
package com.cesgroup.zw.spring.boot.echarts.model.series;

import java.io.Serializable;
import java.math.BigDecimal;

import com.cesgroup.zw.spring.boot.supports.util.math.BigDecimalUtil;

import lombok.Data;

/**
 * <p>描述: </p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date May 24, 2019 4:50:36 PM
 * @version 1.0.2019
 */
@Data @SuppressWarnings("serial")
public class Force implements Serializable {
	
	/** 进行力引导布局前的初始化布局，初始化布局会影响到力引导的效果 */
	private String initLayout;
	
	/** 节点之间的斥力因子，支持设置成数组表达斥力的范围，此时不同大小的值会线性映射到不同的斥力。值越大则斥力越大，[default: 50] */
	private Object repulsion;
	
	/** 节点受到的向中心的引力因子。该值越大节点越往中心点靠拢，[default: 0.1] */
	private BigDecimal gravity;
	
	/** 边的两个节点之间的距离，这个距离也会受 repulsion 影响，支持设置成数组表达边长的范围，此时不同大小的值会线性映射到不同的长度。值越小则长度越长，[default: 30] */
	private Object edgeLength;
	
	/** 因为力引导布局会在多次迭代后才会稳定，这个参数决定是否显示布局的迭代动画，[default: true] */
	private Boolean layoutAnimation;
	
	public void setGravity(int gravity) {
		this.gravity = BigDecimalUtil.valueOf(gravity);
	}
	
	public void setGravity(double gravity) {
		this.gravity = BigDecimalUtil.valueOf(gravity);
	}
}
